'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
#作者：cacho_37967865
#博客：https://blog.csdn.net/sinat_37967865
#文件：deal_maths.py
#日期：2019-09-24
#备注：数学计算公式
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
import math

def base_math():
    num = 10
    a = 7
    b = 11
    r = 3
    c = 8
    print('除法计算保留小数点：',num/a)
    print('除法计算取余数，整除时为0：',num%a)
    print('除法取整：',int(num/b))
    print('开N次方：',pow(c, 1.0/r))
    print('c的r次方：',pow(c, r))
    print('数字的下舍整数：',math.floor(83407/1000))
    aa = int(47733331 / (1323 + 79)) % 2 + 1 - 1
    if aa == 0:
        t = int(47733331 /92)%4
    else:
        t = int(47733331 / 78) % 3
    print(t)
    xs = math.ceil(b /a )
    print('向上取整函数：',xs)


# 获取第i位的加权因子Wi：num-->位数，base-->底数，mod-->被除数
def get_weight_code(type,num):
    weight_code = []
    for i in range(1,num+1):
        if type == 'id_card':        # 身份证+ 组织机构代码 第i位的加权因子Wi
            temp = pow(2,num + 1 -i) % 11
        elif type == 'social_card':  # 企业统一社会信用代码 第i位的加权因子Wi
            temp = pow(3, i-1) % 31
        else:
            print("无此类型的加权因子！！！")
            return False
        weight_code.append(temp)

    print(weight_code)
    return weight_code


if __name__ == '__main__':
    base_math()
    #get_weight_code('id_card',8)
